package colab.persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;


import colab.persistencia.ComputadorDAO;
import colab.dominio.Computador;

public class ComputadorDAO {
private static Computador computador;

public static  ArrayList<colab.dominio.Computador> buscarComputadores(int idSala) throws SQLException{
	
	ArrayList<Computador> computadores = new ArrayList<Computador>();
	
	Connection conn = null;
	PreparedStatement stmt = null;
	ResultSet rs = null;
	
	
	String sql = "select * from computadores where lab like '"+idSala+"'";
	try {
		conn = Conexao.getConnection();
		stmt = conn.prepareStatement(sql);
		rs = stmt.executeQuery();
		
		while(rs.next()){
			Computador computador=null;
			ComputadorDAO.fillSetComputador(computador, rs);
			computadores.add(computador);
			}
		
        
		} 
	catch (SQLException e) {
		e.printStackTrace();
		}
	 finally {
		 	rs.close();
			stmt.close();
			conn.close();
		   }
	
	return computadores;
	}

public static Computador buscarComputador(int id) throws SQLException{
	
	Connection conn = null;
	PreparedStatement stmt = null;
	ResultSet rs = null;
	Computador computador = new Computador(null, 50, 50, 50, 50);
	
	String sql = "select * from notificacoes where computador like '"+id+"'";
	try {			
		
		conn = Conexao.getConnection();
		stmt = conn.prepareStatement(sql);
		rs = stmt.executeQuery();
		
		if (rs.next()){
			
			computador.setId(rs.getInt("computador"));
			computador.setStatusBotao(rs.getString("status"));
			computador.setNotificacao(rs.getString("problema"));
			
		}

	}
	catch (SQLException e) {
		throw new RuntimeException(e);     
	}
	finally {
		stmt.close();
		rs.close();			
		conn.close();
	}
	ComputadorDAO.computador=computador;
	return computador;
	
}

private static void fillSetComputador(Computador computador, ResultSet rs) throws SQLException{
	
	computador.setId(rs.getInt("Id"));
	computador.setIdSala(rs.getInt("lab"));
	computador.setStatusBotao(rs.getString("status"));
	computador.setNotificacao(rs.getString("notificacao"));
	computador.setName(rs.getString("nome"));
	
}

public static boolean alterarNotificacao(int id, String problema) throws SQLException{
	Connection conexao = null;
	PreparedStatement stmt = null;
	boolean bool=false; 
	
	String sql = "UPDATE notificacoes SET problema ='" + problema + "' WHERE computador = '" + id + "'";
				
	try {			
		conexao = Conexao.getConnection();
		stmt = conexao.prepareStatement(sql);
		stmt.executeUpdate();
		
		bool = true;
	}
	catch (SQLException e) {
		 e.printStackTrace();
         
	}finally {
		stmt.close();		
		conexao.close();
	}
	return bool;
	

}


public static Computador getComputador() {
	return computador;
}

public static void setComputador(Computador computador) {
	ComputadorDAO.computador = computador;
}

}